home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / tutor.arc / B.SA < prev    next >
Text File  |  1990-01-05  |  6KB  |  178 lines

  1. B        IDNT      1,1       Init Vectors+Ram                        05/29/82
  2.  
  3.          XDEF      ADDRMSG             .                             1,1
  4.          XDEF      BERRMSG             .                             1,1
  5.          XDEF      INITHRAM
  6.          XDEF      INIT
  7.          XDEF      VECTBE
  8.          XDEF      WHAT
  9.          XDEF      MSG
  10.          XDEF      ERROR
  11.          XDEF      FIRST
  12.          XDEF      FIXDATA
  13.          XDEF      FIXDADD
  14.          XDEF      FIXD2
  15.          XDEF      FIXDCRLF
  16.          XDEF      MSGEOT
  17.          XDEF      MSG008E
  18.          XDEF      MSG008
  19.          XDEF      PPHY
  20.          XDEF      P2PHY
  21.          XDEF      P2PHY2
  22.          XDEF      SYNTAX
  23.          XDEF      V2
  24.          XDEF      WHAT93
  25.  SPC 1
  26.          XREF.S    AV2
  27.          XREF.S    AV3
  28.          XREF.S    BERRD
  29.          XREF.S    BEGHRAM
  30.          XREF.S    BUFFER
  31.          XREF.S    ENDHRAM
  32.          XREF      EVECT2
  33.          XREF      FIXBUF
  34.          XREF      MACSBUG
  35.          XREF      OUT1CR
  36.          XREF      OUTPUT
  37.          XREF      PNT4HX
  38.          XREF      PNT8HX
  39.          XREF.S    REGA7
  40.          XREF      SAVE
  41.          XREF      START
  42.          XREF.S    TEMP
  43.          XREF      TRACE
  44.          XREF.S    TRACEON
  45.  
  46. EOT      EQU       4
  47.  SPC 1
  48. ADDR2MEM MACRO
  49.          PEA       \1(PC)              MOVE ADDRESS TO MEMORY; POSITION
  50.          MOVE.L    (A7)+,\2               INDEPENDANT = TO "MOVE.L #\1,\2"
  51.          ENDM
  52.  SPC 1
  53. SAVEREGS MACRO
  54.          MOVE.L    A7,REGA7            SAVE STACK POINTER
  55.          LEA       SV\@(PC),A7    A7   = RETURN ADDRESS (FOR CALL TO SAVE)
  56.          MOVE.L    A7,TEMP             TEMP = RETURN ADDRESS
  57.          BRA       SAVE                BSR WITHOUT USING STACK
  58. SV\@     DS        0
  59.  SPC 1
  60.          ENDM
  61.  PAGE
  62.  
  63.          SECTION   5
  64.  SPC 2
  65. FIRST    DC.L      REGA7      SUPERVISOR STACK
  66.          DC.L      START      PROGRAM COUNTER
  67. V2       BRA.L     TRACE
  68.  SPC 3
  69. **********************************
  70. * INITIALIZE HIGH RAM SUBROUTINE *
  71. **********************************
  72.  SPC 1
  73. INITHRAM LEA       BEGHRAM,A0              START OF WORK RAM (PAST REGISTERS)
  74.          MOVE.L #(ENDHRAM-BEGHRAM),D0  BYTES TO ZERO             GMP 8-11-81
  75.          CLR.L     D1
  76. INIT     MOVE.B    D1,(A0)+  ZERO MEMORY
  77.          SUB.L #1,D0
  78.          BNE INIT
  79.  SPC 3
  80.          ADDR2MEM BERRMSG,AV2   POINT AT BUS TRAP ERROR MESSAGE ROUTINE
  81.  
  82.          ADDR2MEM ADDRMSG,AV3   POINT AT ADDRESS TRAP ERROR MESSAGE ROUTINE
  83.          SECTION   6
  84.          RTS
  85.  PAGE
  86. ****************************************************
  87. * SPECIAL HANDLING FOR BUS ERROR AND ADDRESS ERROR *
  88. ****************************************************
  89. BERRMSG  MOVE.L    #'BUS ',$30
  90.          BRA.S     VECTBE
  91.  
  92. ADDRMSG  MOVE.L    #'ADDR',$30
  93.  
  94. VECTBE   MOVE.L  (A7)+,BERRD
  95.          MOVE.L  (A7)+,BERRD+4
  96.  SPC 1
  97.          SAVEREGS
  98.          BSR     FIXBUF
  99.          MOVE.W  #$D0A,(A6)+
  100.          MOVE.W  BERRD,D0
  101.          BSR     PNT4HX      FORMAT FUNCTION CODE
  102.  SPC 1
  103.          MOVE.B    #' ',(A6)+          SPACE
  104.          MOVE.L  BERRD+2,D0
  105.          BSR     PNT8HX      FORMAT ACCESS ADDRESS
  106.  SPC 1
  107.          MOVE.B    #' ',(A6)+          SPACE
  108.          MOVE.W  BERRD+6,D0
  109.          BSR     PNT4HX      FORMAT INSTRUCTION REGISTER
  110.  SPC 1
  111.          BSR     OUTPUT
  112.          BRA     EVECT2      GO DISPLAY REGISTERS & PROMPT
  113.  PAGE
  114. MSG008   DC.B      'SYNTAX '
  115. MSG008E  DC.B      'ERROR '
  116. MSGEOT   DC.B      EOT
  117.  SPC 1
  118. MSG021   DC.B      'WHAT',EOT
  119.  SPC 1
  120. * PRINT WHAT
  121. WHAT     LEA       MSG021(PC),A5  PRINT 'WHAT' AND ENTER MACSBUG
  122. WHAT93   BSR.S     FIXDATA
  123.          CLR.W     TRACEON
  124. MSG      BSR       OUT1CR
  125.          BRA       MACSBUG
  126.  SPC 1
  127. * PRINT ERROR
  128. ERROR    LEA       MSG008E(PC),A5
  129.          BRA       WHAT93
  130.  SPC 1
  131. SYNTAX   LEA       MSG008(PC),A5 'SYNTAX ERROR'
  132.          BRA       WHAT93
  133.          PAGE
  134. * FORMAT PHYSICAL ADDRESS   FROM (D0)
  135. PPHY     LEA       MSG019(PC),A5
  136.          BSR.S     FIXDATA
  137.          BRA.S     P2PHY2
  138.  SPC 1
  139. * FORMAT TWO PHYSICAL ADDRESSES   FROM (A0) & (A1)
  140. P2PHY    LEA       MSG019(PC),A5 'PHYSICAL ADDRESS='
  141.          BSR.S     FIXDATA
  142.          MOVE.L    A0,D0
  143.          BSR       PNT8HX    FORMAT ADDR1
  144.          MOVE.B    #' ',(A6)+ SPACE FOR FORMATING
  145.          MOVE.L    A1,D0
  146. P2PHY2   BSR       PNT8HX    FORMAT ADDR2
  147.          BSR       OUT1CR    DISPLAY IT
  148.          RTS
  149.  SPC 1
  150. MSG019   DC.B      'PHYSICAL ADDRESS=',EOT
  151.  PAGE
  152. *************************************************************
  153. * -FIXDATA- SUBROUTINE...  MOVES MESSAGE POINTED TO BY (A5) *
  154. *                          INTO "BUFFER". EOT, ($04), ENDS  *
  155. *                          THE MOVE. AT COMPLETION (A5) IS  *
  156. *                          POINTING AT THE BEGINNING, (A6)  *
  157. *                          POINTS AT END.                   *
  158. *************************************************************
  159.  SPC 1
  160. FIXDATA  LEA       BUFFER,A6
  161. FIXDADD  CMP.B     #EOT,(A5)
  162.          BEQ.S     FIXD2
  163.          MOVE.B    (A5)+,(A6)+
  164.          BRA       FIXDADD
  165. FIXD2    LEA       BUFFER,A5
  166.          RTS
  167.  SPC 1
  168. ************************************************************
  169. * -FIXDCRLF- SUBROUTINE INSERTS A CARRIAGE RETURN AND LINE *
  170. *                       FEED IN FRONT OF THE TEXT, THEN    *
  171. *                       USES THE REMAINING PORTION OF THE  *
  172. *                       FIXDATA.                           *
  173. ************************************************************
  174. FIXDCRLF LEA       BUFFER,A6
  175.          MOVE.W    #$0D0A,(A6)+        CR,LF
  176.          BRA       FIXDADD
  177.  SPC 1
  178.          END